package Static;
/*本类用于测试静态static用法*/
public class TestStatic {
    public static void main(String[] args) {
        //1.在没创建对象的情况下，可以通过类名直接调用静态资源。//类名不可以直接调用非静态资源
        System.out.println(Student.name);//null
        Student.speak();//别讲话，我在学习//静态资源优先对象进行加载，随着每个类的加载而加载
        //2.创建对象进行测试
        Student s = new Student();//光创建对象，普通方法不会输出
        System.out.println(s.name);//null
        s.study();//
        //3.创建多个对象
        Student s2 = new Student();
        //4.对象赋值
        s.id=12345;
        s.name="摩西";
        System.out.println(s.name);//摩西
        System.out.println(Student.name);//摩西
        //5.类名赋值
        Student.name="卡和";//但不可以给id非静态赋值
        System.out.println(Student.name);//卡和
        //6.赋值后，用s2新对象来测试；【静态资源全局共享：对象会自动引用之前的赋值】
        s2.study();//我在学习JAVA，别烦我
        System.out.println(s2.id);//0
        System.out.println(s2.name);//卡和

    }
}
class Student{
    //1.普通资源可以通过static关键字修饰成静态资源={成员变量+成员方法}
    static    String name;//均可以赋值
    int id;
    public void study(){
        System.out.println("我在学习JAVA，别烦我");
    }
    public static void speak(){
        System.out.println("别讲话，我在学习");
    }
}

